<?php
  
  $maximo = 10000;
  $colunas = 90;
  
  $progresso = new BarraProgresso($maximo);
  $progresso->setColunas($colunas);
  
  for ($i = 0; $i <= $maximo ; $i++)
  {
        $progresso->mostrar($i);
  }
  
  echo "\n";
  
  class BarraProgresso
  {
        private  $colunas;
        private  $limite;
  
        function __construct($limite)
        {
                $this->limite = $limite;
                $this->setColunas(80);
        }
  
        public function setColunas($colunas)
        {
                $this->colunas = $colunas - 22;
        }
  
        public function mostrar($valor)
        {
                $percentual = (int)(($valor/$this->limite)*100);
                $barra = (int)($percentual * ($this->colunas/100));
                $mascara = "\r[%-" . $this->colunas . "s] %d%% (%2d/%2d)";
                printf($mascara, str_repeat("=", $barra). ">", $percentual, $valor, $this->limite);
        }
  }
  
  ?>